<?php
/**
 * Помощник для формирования таблиц html
 *
 *
 * @author nrnwest@gmail.com
 * @uses viewHelper Arm_View_Helper
 */
class Arm_View_Helper_Data extends Zend_View_Helper_Abstract
{
    private $_data;
    private $_count;
    private $_countDataIn;
    
    /**
     * Arm_View_Helper_Data
     * 
     * @param array $data
     * @param int   $count на сколько столбцов разделить масив.
     * @return Arm_View_Helper_Data
     */
    public function data($data, $count)
    {
      $this->_data = $data;
      $this->_count = (int)$count;
      $this->_countDataIn = count($data);
      $this->_count = $this->getMaxColumns();
      return $this;
    }
    
    /**
     * Максимальное количество столбцов.
     * @return int
     */
    public function getMaxColumns()
    {
      if($this->_countDataIn < $this->_count) {
          return $this->_countDataIn;
      } 
      return $this->_count;
    }
    
    /**
     * Возвращает новый масив, который создан на базе переданого
     * масива. Новый масив содержит масив для формирования рядов таблици.
     * 
     * @return array
     */
    public function get()
    {
       $result = array(); 
       $countElement = count($this->_data);
       $element =  ceil($countElement / $this->_count);
       for ($i=0; $i<$element; $i++) {
           // нужно получить опреденое количество данных, с масива $this->_data и записать их в $result.
           $data = array();
           $c    = 0;
           foreach ($this->_data as $k=>$v) {
               $c++;
               $data[] = $this->_data[$k];
               unset($this->_data[$k]);
               if($c === $this->_count) {
                   break;
               }
           }
           if(count($data)<$this->_count) {
               for ($id=count($data); $id<$this->_count; $id++) {
                   $data[] = false;
               }
           }
           $result[] = $data;
       }
       return $result;
    }
    
}